home *** CD-ROM | disk | FTP | other *** search
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
-
- ''DIALOG ID's
- CONST WELCOME = 100
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST VERIFYWINPATH = 2400
- CONST ERROR_UNEXPECTED = 2200
- CONST NOT_INSTALLED = 3100
-
- ''OTHER CONSTANTS
- CONST LOGO = 1
- CONST MB_YESNO = 4
- CONST MB_ICONINFORMATION = 64
- CONST IDYES = 6
- CONST IDNO = 7
-
- GLOBAL THEMENAME$
- GLOBAL THEMEDIR$
- THEMENAME$ = "Castle"
- THEMEDIR$ = "CASTLE"
-
- GLOBAL DESTWIN$ ''Windows directory
- GLOBAL DESTWINSYS$ ''Windows\System directory
- GLOBAL DESTDINER$ ''Diner directory
-
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
- INIT:
- CUIDLL$ = "MSCUISTF.DLL"
- ExitCode% = 0
- ON ERROR GOTO ERRORTRAP
-
- SrcDir$ = GetSymbolValue ("STF_SRCDIR")
- DESTWIN$ = GetWindowsDir()
-
- SetBitmap CUIDLL$, LOGO
- SetTitle "Imagination Express Setup"
-
- szInf$ = GetSymbolValue ("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue ("STF_CWDDIR") + "setup.inf"
- ENDIF
- ReadInfFile szInf$
-
- WELCOME:
-
- sz$ = UIStartDlg (CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
-
- IF sz$ <> "CONTINUE" THEN
- GOSUB ASKQUIT
- GOTO WELCOME
- ENDIF
-
- UIPop 1 '' destroy dialog on top of stack
-
- IF ExitCode% <> 0 THEN
- GOTO EXITFAIL
- ENDIF
-
- VERIFYWINPATH:
- '' Verify that setup has found the correct \windows directory
- DESTWIN$ = GetWindowsDir()
- SetSymbolValue "EditTextIn", DESTWIN$
- SetSymbolValue "EditFocus", "END"
- sz$ = UIStartDlg (CUIDLL$, VERIFYWINPATH, "FEditDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO VERIFYWINPATH
- ELSEIF SZ$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO VERIFYWINPATH
- ENDIF
- sz$ = GetSymbolValue ("EditTextOut")
- IF sz$ <> DESTWIN$ THEN
-
- '' make sure user ended path with a '\'
- '' if not, help 'em out
- DESTWIN$ = sz$
- DESTWIN$ = LTRIM$(RTRIM$ (DESTWIN$))
- IF INSTR (LEN (DESTWIN$) - 1, DESTWIN$, "\") = 0 THEN
- DESTWIN$ = DESTWIN$ + "\"
- ENDIF
- '' make sure path has a drive letter and drive letter is valid
- sz$ = MID$ (DESTWIN$, 2, 1)
- IF sz$ <> ":" THEN
- i% = DoMsgBox ("You must specify a valid drive letter in the path name.", "Imagination Express Setup", MB_ICONHAND + MB_OK)
- GOTO VERIFYWINPATH
- ENDIF
- sz$ = MID$ (DESTWIN$, 1, 1)
- IF IsDriveValid (sz$) = 0 THEN
- i% = DoMsgBox ("You must specify a valid drive letter in the path name.", "Imagination Express Setup", MB_ICONHAND + MB_OK)
- GOTO VERIFYWINPATH
- ENDIF
- '' make sure path is valid (i.e. it exists)
- IF DoesDirExist (DESTWIN$) = 0 THEN
- i% = DoMsgBox (DESTWIN$ + " is not a valid path name.", "Imagination Express Setup", MB_ICONHAND + MB_OK)
- GOTO VERIFYWINPATH
- ENDIF
-
- ENDIF
-
- UIPop 1
-
- DESTWINSYS$ = DESTWIN$
- IF INSTR (LEN (DESTWINSYS$) - 1, DESTWINSYS$, "\") = 0 THEN
- DESTWINSYS$ = DESTWINSYS$ + "\"
- ENDIF
- DESTWINSYS$ = DESTWINSYS$ + "SYSTEM"
-
-
- GETDINERPATH:
- INISTR$ = DESTWIN$ + "IMAGINE.INI"
- IF DoesFileExist (INISTR$, femExists) = 1 THEN
- DESTDINER$ = GetIniKeyString (INISTR$, "General", "Root")
- IF DESTDINER$ = "" THEN
- GOTO ERROR_NOT_INSTALLED
- ENDIF
- EXESTR$ = MakePath (DESTDINER$, "IMAGINE.EXE")
- IF DoesFileExist (EXESTR$, femExists) = 0 THEN
- GOTO ERROR_NOT_INSTALLED
- ENDIF
- ELSE
- GOTO ERROR_NOT_INSTALLED
- ENDIF
-
- INITCOPYLIST:
-
- ClearCopyList
- AddSectionFilesToCopyList THEMENAME$, SrcDir$, MAKEPATH (DESTDINER$, "THEMES\" + THEMEDIR$ + "\")
- sizereq& = GetCopyListCost ("", "NeededSpace", "")
-
- CHECKSPACE:
- IF sizereq& <> 0 THEN
- DRIVELETTER$ = MID$ (DESTDINER$, 1, 1)
- COST$ = GetListItem ("NeededSpace", ASC(LCASE$ (DESTDINER$)) - ASC("a") + 1)
- MESSAGE$ = "Not enough free space on drive " + DRIVELETTER$ + ":. Setup needs " + COST$
- MESSAGE$ = " bytes free to install the " + THEMENAME$ + " Theme Pack. Please free up some space and run Setup again."
- i% = DoMsgBox (MESSAGE$, "Imagination Express Setup", MB_ICONHAND + MB_OK)
- GOTO SEEYA
- ENDIF
-
- COPYFILES:
- SrcDir$ = GetSymbolValue ("STF_SRCDIR")
- CreateDir MakePath (DESTDINER$, "Themes\" + THEMEDIR$ + "\"), cmoVital
- ERR = 0
-
- '' copy the files
- CopyFilesInCopyList
-
- CreateIniKeyValue MakePath (DESTWIN$, "Imagine.INI"), "Themepack List", THEMENAME$, "Themes\" + THEMEDIR$ + "\", cmoOverwrite
-
- '' check for copy errors
- IF ERR <> 0 THEN
- GOTO ERR_UNEXPECTED
- ENDIF
-
- SUCCESS:
- '' indicate success to the user and restart windows if necessary
- sz$ = UIStartDlg (CUIDLL$, EXITSUCCESS, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO SUCCESS
- ENDIF
- UIPop 1
- GOTO SEEYA
-
- ASKQUIT:
- sz$ = UIStartDlg (CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPop 1
- GOTO QUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1 '' remove quit dialog and go back to previous dialog
- ENDIF
-
- RETURN
-
- QUIT:
- sz$= UIStartDlg (CUIDLL$, EXITQUIT, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUIT
- ENDIF
- UIPopALL
- GOTO SEEYA
-
- ERR_UNEXPECTED:
- sz$ = UIStartDlg (CUIDLL$, ERROR_UNEXPECTED, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO ERR_UNEXPECTED
- ENDIF
- UIPop 1
- GOTO FAILURE
-
- EXITFAIL:
- sz$ = UIStartDlg (CUIDLL$, ExitCode%, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO EXITFAIL
- ENDIF
- UIPop 1
- GOTO FAILURE
-
- FAILURE:
- sz$ = UIStartDlg (CUIDLL$, EXITFAILURE, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO FAILURE
- ENDIF
- UIPopAll
- GOTO SEEYA
-
-
- ERRORTRAP:
- IF ERR = STFQUIT THEN
- GOTO QUIT
- ENDIF
-
- RESUME NEXT
-
- ERROR_NOT_INSTALLED:
- sz$ = UIStartDlg (CUIDLL$, NOT_INSTALLED, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO ERROR_NOT_INSTALLED
- ENDIF
- UIPopAll
- GOTO SEEYA
-
- SEEYA:
- UIPopAll
- END
-
-
-
- '' FROM HERE ON ARE FUNCTIONS IN THE ORIGINAL WING.MST FILE THAT THE WING SETUP USES
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-